package com.punai.config.sqlitedomain;

import com.punai.common.utils.sqlite.SLCDesc;
import com.punai.common.utils.sqlite.SLTDesc;

import java.util.Date;
import java.util.Objects;

@SLTDesc(tName = "tab_config_indicator_item")
public class ConfigIndicatorItem {
    /**
     * id
     */
    private String id;
    /**
     * code
     * 字段代码
     */
    private String code;
    /**
     * name
     * 字段名称
     */
    private String name;
    /**
     * unit
     * 单位
     */
    private String unit;
    /**
     * is_group_data
     * 是否是集团数据
     */
    private String isGroupData;
    /**
     * classification
     * 分类
     */
    private String classification;
    /**
     * type
     * 配置类型
     */
    private String type;
    /**
     * create_date
     * 创建时间
     */
    private Date createDate;
    /**
     * edit_state
     * 数据类型
     */
    private Long editState;
    /**
     * last_modify
     * 最后修改时间
     */
    private Date lastModify;
    /**
     * sreach_key
     * 检索字段
     */
    private String sreachKey;
    /**
     * version
     * 版本
     */
    private Long version;
    /**
     * script
     * 規則腳本
     */
    private String script;
    /**
     * consumption_script
     * 消耗量换算规则
     */
    private String consumptionScript;
    /**
     * depart_code
     */
    private String departCode;
    /**
     * project_type
     */
    private String projectType;
    /**
     * costs_type
     */
    private String costsType;
    /**
     * attr  //不知道含义，暂作为人材机关键字回显
     */
    private String attr;
    /**
     * calculate_caliber_type
     * 计算规则
     */
    private String calculateCaliberType;
    /**
     * conditions
     * 规则JSON
     */
    @SLCDesc(tc = "Conditions")
    private String conditions;
    /**
     * conver_coefficient
     * 单位转换系数
     */
    @SLCDesc(tc = "conver_coefficient")
    private String converCoefficient;
    /**
     * remark
     * 备注
     */
    @SLCDesc(tc = "remark")
    private String remark;
    /**
     * qd_codes
     * 匹配规则选择数据Code
     */
    private String qdCodes;
    /**
     * qd_id_str
     * 匹配规则选择数据ID
     */
    private String qdIdStr;
    /**
     * formula
     * 计算公式
     */
    @SLCDesc(tc = "formula")
    private String formula;
    /**
     * exclude_qd_codes
     * 排除规则选择数据Code
     */
    private String excludeQdCodes;
    /**
     * exclude_qd_id_str
     * 排除规则选择数据ID
     */
    private String excludeQdIdStr;
    /**
     * important
     * 成本要素 0否 1是
     */
    private String important;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getIsGroupData() {
        return isGroupData;
    }

    public void setIsGroupData(String isGroupData) {
        this.isGroupData = isGroupData;
    }

    public String getClassification() {
        return classification;
    }

    public void setClassification(String classification) {
        this.classification = classification;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Long getEditState() {
        return editState;
    }

    public void setEditState(Long editState) {
        this.editState = editState;
    }

    public Date getLastModify() {
        return lastModify;
    }

    public void setLastModify(Date lastModify) {
        this.lastModify = lastModify;
    }

    public String getSreachKey() {
        return sreachKey;
    }

    public void setSreachKey(String sreachKey) {
        this.sreachKey = sreachKey;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public String getScript() {
        return script;
    }

    public void setScript(String script) {
        this.script = script;
    }

    public String getConsumptionScript() {
        return consumptionScript;
    }

    public void setConsumptionScript(String consumptionScript) {
        this.consumptionScript = consumptionScript;
    }

    public String getDepartCode() {
        return departCode;
    }

    public void setDepartCode(String departCode) {
        this.departCode = departCode;
    }

    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public String getCostsType() {
        return costsType;
    }

    public void setCostsType(String costsType) {
        this.costsType = costsType;
    }

    public String getAttr() {
        return attr;
    }

    public void setAttr(String attr) {
        this.attr = attr;
    }

    public String getCalculateCaliberType() {
        return calculateCaliberType;
    }

    public void setCalculateCaliberType(String calculateCaliberType) {
        this.calculateCaliberType = calculateCaliberType;
    }

    public String getConditions() {
        return conditions;
    }

    public void setConditions(String conditions) {
        this.conditions = conditions;
    }

    public String getConverCoefficient() {
        return converCoefficient;
    }

    public void setConverCoefficient(String converCoefficient) {
        this.converCoefficient = converCoefficient;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getQdCodes() {
        return qdCodes;
    }

    public void setQdCodes(String qdCodes) {
        this.qdCodes = qdCodes;
    }

    public String getQdIdStr() {
        return qdIdStr;
    }

    public void setQdIdStr(String qdIdStr) {
        this.qdIdStr = qdIdStr;
    }

    public String getFormula() {
        return formula;
    }

    public void setFormula(String formula) {
        this.formula = formula;
    }

    public String getExcludeQdCodes() {
        return excludeQdCodes;
    }

    public void setExcludeQdCodes(String excludeQdCodes) {
        this.excludeQdCodes = excludeQdCodes;
    }

    public String getExcludeQdIdStr() {
        return excludeQdIdStr;
    }

    public void setExcludeQdIdStr(String excludeQdIdStr) {
        this.excludeQdIdStr = excludeQdIdStr;
    }

    public String getImportant() {
        return important;
    }

    public void setImportant(String important) {
        this.important = important;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ConfigIndicatorItem that = (ConfigIndicatorItem) o;
        return Objects.equals(id, that.id) && Objects.equals(code, that.code) && Objects.equals(name, that.name) && Objects.equals(unit, that.unit) && Objects.equals(isGroupData, that.isGroupData) && Objects.equals(classification, that.classification) && Objects.equals(type, that.type) && Objects.equals(createDate, that.createDate) && Objects.equals(editState, that.editState) && Objects.equals(lastModify, that.lastModify) && Objects.equals(sreachKey, that.sreachKey) && Objects.equals(version, that.version) && Objects.equals(script, that.script) && Objects.equals(consumptionScript, that.consumptionScript) && Objects.equals(departCode, that.departCode) && Objects.equals(projectType, that.projectType) && Objects.equals(costsType, that.costsType) && Objects.equals(attr, that.attr) && Objects.equals(calculateCaliberType, that.calculateCaliberType) && Objects.equals(conditions, that.conditions) && Objects.equals(converCoefficient, that.converCoefficient) && Objects.equals(remark, that.remark) && Objects.equals(qdCodes, that.qdCodes) && Objects.equals(qdIdStr, that.qdIdStr) && Objects.equals(formula, that.formula) && Objects.equals(excludeQdCodes, that.excludeQdCodes) && Objects.equals(excludeQdIdStr, that.excludeQdIdStr) && Objects.equals(important, that.important);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, code, name, unit, isGroupData, classification, type, createDate, editState, lastModify, sreachKey, version, script, consumptionScript, departCode, projectType, costsType, attr, calculateCaliberType, conditions, converCoefficient, remark, qdCodes, qdIdStr, formula, excludeQdCodes, excludeQdIdStr, important);
    }

    @Override
    public String toString() {
        return "IndicatorItem{" +
                "id='" + id + '\'' +
                ", code='" + code + '\'' +
                ", name='" + name + '\'' +
                ", unit='" + unit + '\'' +
                ", isGroupData='" + isGroupData + '\'' +
                ", classification='" + classification + '\'' +
                ", type='" + type + '\'' +
                ", createDate=" + createDate +
                ", editState=" + editState +
                ", lastModify=" + lastModify +
                ", sreachKey='" + sreachKey + '\'' +
                ", version=" + version +
                ", script='" + script + '\'' +
                ", consumptionScript='" + consumptionScript + '\'' +
                ", departCode='" + departCode + '\'' +
                ", projectType='" + projectType + '\'' +
                ", costsType='" + costsType + '\'' +
                ", attr='" + attr + '\'' +
                ", calculateCaliberType='" + calculateCaliberType + '\'' +
                ", conditions='" + conditions + '\'' +
                ", converCoefficient='" + converCoefficient + '\'' +
                ", remark='" + remark + '\'' +
                ", qdCodes='" + qdCodes + '\'' +
                ", qdIdStr='" + qdIdStr + '\'' +
                ", formula='" + formula + '\'' +
                ", excludeQdCodes='" + excludeQdCodes + '\'' +
                ", excludeQdIdStr='" + excludeQdIdStr + '\'' +
                ", important='" + important + '\'' +
                '}';
    }
}
